package com.wodsy.phoenix.dataservice.shopc.service;

import com.wodsy.phoenix.dataobject.base.Pager;
import com.wodsy.phoenix.dataobject.base.PhoenixGenericResponse;
import com.wodsy.phoenix.dataobject.base.PhoenixResponseWrapper;
import com.wodsy.phoenix.dataobject.shopc.model.FreightTemp;
import com.wodsy.phoenix.dataobject.shopc.model.FreightTempArea;
import com.wodsy.phoenix.dataobject.shopc.model.FreightTempDeliveryMethod;
import com.wodsy.phoenix.dataobject.shopc.model.FreightTempPriceUnit;
import com.wodsy.phoenix.dataobject.shopc.vo.CalculateFreight;

import java.util.List;

/**
 * Created by Huang on 2015/4/15.
 */
public interface FreightTempService {
    /**
     * 计算运费
     * @param calculateFreight
     * @return
     */
    PhoenixResponseWrapper<CalculateFreight> calculateFreight(CalculateFreight calculateFreight);
    /**
     * 计算运费
     * @param calculateFreights
     * @return
     */
    PhoenixResponseWrapper<CalculateFreight> calculateFreight(List<CalculateFreight> calculateFreights);

    /**
     * 新增运费模板
     * @param freightTemp
     * @return
     */
    PhoenixResponseWrapper<PhoenixGenericResponse> addFreightTemp(FreightTemp freightTemp);

    /**
     * 修改运费模板
     * @param freightTemp
     * @return
     */
    PhoenixResponseWrapper<PhoenixGenericResponse> mergeFreightTemp(FreightTemp freightTemp);

    /**
     * 删除运费模板
     * @param id
     * @return
     */
    PhoenixResponseWrapper<PhoenixGenericResponse> delFreightTemp(int id);

    /**
     * 查找某一运费模板
     * @param id
     * @return
     */
    PhoenixResponseWrapper<FreightTemp> getFreightTemp(int id);

    /**
     * 查询一个店主的一个店铺全部运费模板
     * @param shopId
     * @param userId
     * @return
     */
    PhoenixResponseWrapper<FreightTemp> findFreightTempsByOwnerInfo(Pager<FreightTemp> pager,int shopId,int userId);

    /**
     * 查询一个店主的一个店铺全部运费模板
     * @param shopId
     * @param userId
     * @return
     */
    PhoenixResponseWrapper<FreightTemp> findFreightTempsByOwnerInfo(int shopId,int userId);

    /**
     * 查找所有的运费计价单位
     * @return
     */
    PhoenixResponseWrapper<FreightTempPriceUnit> findFreightTempPriceUnit();

    /**
     * 查找某一运费计价单位
     * @param id
     * @return
     */
    PhoenixResponseWrapper<FreightTempPriceUnit> getFreightTempPriceUnit(int id);

    /**
     * 查找某一配送方式
     * @param id
     * @return
     */
    PhoenixResponseWrapper<FreightTempDeliveryMethod> getFreightTempDeliveryMethod(int id);

    /**
     * 查找全部配送方式
     * @return
     */
    PhoenixResponseWrapper<FreightTempDeliveryMethod> findFreightTempDeliveryMethod();

}
